const path = require('path')
const { app , BrowserWindow ,ipcMain, globalShortcut, Menu} = require('electron');
const { default: WinState } = require('electron-win-state');

const mainMenu = Menu.buildFromTemplate([
    {
        label: 'electron',
        submenu: [
            {
                label: 'sub_menu1'
            },
            {
                label: 'sub_menu2',
                click: ()=> {
                    console.log('menu')
                }
            }
        ]
    }
])
const WinStateall = new WinState({
    defaultWidth: 800,
    defaultHeight: 600
})

console.log(path)
const createWindow = () => {
    const win = new BrowserWindow({
        ...WinStateall.winOptions,
        // width: 1000,
        // height: 800,
        // frame: false,
        // titleBarStyle: 'hidden', //frame的配置
        backgroundColor: '#ccc',
        // x: 100,
        // y: 100,
        // show:false, //打开空白屏幕，先设置这个可以避免
        webPreferences: {
            // nodeIntegration: true, // 允许渲染进程使用node
            // contextIsolation: true, // 允许渲染进程使用node  启动上下文隔离
            preload: path.resolve(__dirname, './preload.js') // 做预加载文件
        }
    })
    // win.loadURL('http://uatoms.top-2.com/purchaseCenter/purchases')
    win.loadFile('index.html')
    const wc = win.webContents
    wc.openDevTools() // 打开开发者工具
    wc.on('did-finish-load',() => { //
        console.log('finished')
    })
    wc.on('dom-ready',() => {
        console.log('dom-ready')
    })

    // process.env['ELECTRON_DISABLE_SECURITY_WARNINGS'] = true // 关闭安全警告
 
    // win.on('ready-to-show'), () => { // 窗口准备好显示时触发
    //     console.log(333)
    //     win.show()
    // }
    // const win2 = new BrowserWindow({
    //     width: 700,
    //     height: 400,
    //     parent: win,

    // })
    // win2.loadURL('https://blog.csdn.net/weixin_51197518/article/details/130672000')
    WinStateall.manage(win)

    // globalShortcut.register('G',()=> { //监听键盘事件
    //     console.log('g')
    // })
    Menu.setApplicationMenu(mainMenu)
}
 

// 进程

app.whenReady().then(() => {
    createWindow() // 创建窗口 
    app.on('window-all-closed', () => { // 窗口全部关闭时退出
        // process主进程对象
        if (process.platform !== 'darwin') {
            app.quit()
        }
    })
    app.on('activate', () => {
        if (BrowserWindow.getAllWindows().length === 0) { // 没有窗口激活
            createWindow() // 创建窗口
        }
    })
    // console.log(app.getAppPath('music')) // 获取应用目录
    app.on('browser-window-blur'), () => {
        console.log('browser-window-blur')

    }
    app.on('browser-window-focus'), () => {
        console.log('browser-window-focus')
    }
    app.on('before-quit', () => { // 退出前触发
        console.log('quit')
    })
    // 主进程定义
    ipcMain.handle('send-message', (event, arg) => {
        console.log(arg)
        // 传回去给渲染进程
        return arg
    })
    
})

/**
 * 主进程的生命周期
 * 主进程的渲染周期
 * 主进程渲染安全隔离
 * 预加载的JS访问、调用node
 * 运用contextBridge 搭建起渲染进程和主进程的桥通信【主进程(preload)传入渲染进程(app.js)】
 */